<%--
  Created by IntelliJ IDEA.
  User: 郝龙飞
  Date: 2021/5/20
  Time: 16:42
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<%--分页条--%>

<div id="page_nav">
    <c:if test="${requestScope.page.pageNo > 1}">
        <%--${requestScope.page.url}在前台是：client/clientBookServlet?action=page--%>
        <%--${requestScope.page.url}在后台台是：manager/bookServlet?action=page--%>
        <a href="${requestScope.page.url}&pageNo=1">首页</a>
        <a href="${requestScope.page.url}&pageNo=${requestScope.page.pageNo-1}">上一页</a>
    </c:if>
    <%--页码输出的开始--%>
    <c:choose>
        <%-- 情况 1 ：如果总页码小于等于 5 的情况，页码的范围是： 1- 总页码 --%>
        <c:when test="${requestScope.page.pageTotal <= 5}">
            <c:set var="begin" value="1"/><%--默认保存到pageContext域中--%>
            <c:set var="end" value="${requestScope.page.pageTotal}"/>
        </c:when>
        <%-- 情况 2 ：总页码大于 5 的情况 --%>
        <c:when test="${requestScope.page.pageTotal > 5}">
            <c:choose>
                <%-- 小情况 1 ：当前页码为前面 3 个： 1 ， 2 ， 3 的情况，页码范围是： 1-5.--%>
                <c:when test="${requestScope.page.pageNo <= 3}">
                    <c:set var="begin" value="1"/><%--默认保存到pageContext域中--%>
                    <c:set var="end" value="5"/>
                </c:when>
                <%-- 小情况 2 ：当前页码为最后 3 个， 8 ， 9 ， 10 ，页码范围是：总页码减 4 - 总页码 --%>
                <c:when test="${requestScope.page.pageNo >= requestScope.page.pageTotal - 4}">
                    <c:set var="begin" value="${requestScope.page.pageTotal - 4}"/><%--默认保存到pageContext域中--%>
                    <c:set var="end" value="${requestScope.page.pageTotal}"/>
                </c:when>
                <%-- 小情况 3 ： 4 ， 5 ， 6 ， 7 ，页码范围是：当前页码减 2 - 当前页码加 2--%>
                <c:otherwise>
                    <c:set var="begin" value="${requestScope.page.pageNo - 2}"/><%--默认保存到pageContext域中--%>
                    <c:set var="end" value="${requestScope.page.pageNo + 2}"/>
                </c:otherwise>
            </c:choose>
        </c:when>
    </c:choose>

    <c:forEach begin="${pageScope.begin}" end="${pageScope.end}" var="i">
        <c:if test="${i == requestScope.page.pageNo}">
            【${i}】
        </c:if>
        <c:if test="${i != requestScope.page.pageNo}">
            <a href="${requestScope.page.url}&pageNo=${i}">${i}</a>
        </c:if>
    </c:forEach>

    <%--页码输出的结束--%>
    <c:if test="${requestScope.page.pageNo < requestScope.page.pageTotal}">
        <a href="${requestScope.page.url}&pageNo=${requestScope.page.pageNo+1}">下一页</a>
        <a href="${requestScope.page.url}&pageNo=${requestScope.page.pageTotal}">末页</a>
    </c:if>
    共${requestScope.page.pageTotal}页，${requestScope.page.pageTotalCount}条记录
    到第<input value="${param.pageNo}<%--param.pageNo 设置回显值--%>" name="pn" id="pn_input"/>页
    <input id="nav_button" type="button" value="确定">

    <script type="text/javascript">
        $(function () {
            $("#nav_button").click(function () {
                var pageNo = $("#pn_input").val();

                var pageTotal = ${requestScope.page.pageTotal};

                //数据边界的有效检查(双重验证，在page.java中也进行了验证)
                if (pageNo < 1) {
                    alert("对不起，您输入的页码不正确，已自动为您跳转至首页！");
                    pageNo = 1;
                }
                if (pageNo > pageTotal) {
                    alert("对不起，您输入的页码不正确，已自动为您跳转至末页！");
                    pageNo = pageTotal;
                }
                <%--var pageTotal = ${requestScope.page.pageTotal};--%>
                <%--alert(pageTotal);--%>
                // javaScript 语言中提供了一个 location 地址栏对象
                // 它有一个属性叫 href. 它可以获取浏览器地址栏中的地址
                // href 属性可读，可写
                location.href = "${pageScope.basePath}${requestScope.page.url}&pageNo=" + pageNo;

            })
        })
    </script>

</div>
